<!--
  @*  合同管理---合同申诉
  @*  发起合同中止申诉
  @*  uploadZxyLegalLetter.vue
-->
<template>
  <a-modal
    v-model="isShow"
    title="发起合同中止申诉"
    :footer="null"
    :destroyOnClose="true"
    @cancel="handleCancel"
  >
    <a-form-model ref="form" :model="form" :rules="rules" :label-col="labelCol" :wrapper-col="wrapperCol">
      <!--发起合同中止申诉-->
      <a-form-model-item label="申诉文件" prop="url">
        <p-UpLoadFile v-model="form.url" ref="qyfzrxx_jsfr" :config="fileUploadConfig" :showHelp="true" :customRequestEvent="PUpLoadFileCustomRequestEvent"/>
      </a-form-model-item>
      <a-form-model-item label="申诉说明" prop="reason">
        <a-input v-model="form.reason" type="textarea" :rows="4" />
      </a-form-model-item>

      <div style="text-align: center;margin-top: 10px;">
        <a-button type="primary" @click="confirmOperation">确认</a-button>
      </div>

    </a-form-model>
  </a-modal>
</template>

<script>
import { getAgreeAppeal } from '@/api/setting'

const getUploadConfig = () => {
  return {
    // 此参数必填  上传路径
    dir: "/user/contract/",
    // 身份证  all   ；  单文件 对应 card1 ；   多文件 对应  card3 ； 身份证  对应  card1（身份证正面）、card2（身份证反面）
    model: "单文件",
    // 此参数选填   此属性只在 model= 身份证 时 启用   默认值文false
    showBG: false,
    // 此参数选填  表示是否可编辑
    readonly: false,
    // 提示信息
    tips:{
      card1: '上传文件',
    },
    // 此参数选填   文件上传必填校验 默认为false 不校验   当值为true时进行强制校验  需要配合【getDataCheckRes】方法使用；
    // 方法【getDataCheckRes】的具体用法如: this.$refs.UpLoadFile.getDataCheckRes({ card1: "请上传身份证正面",card2: "请上传身份证反面", card3: "请上传附件"});
    // 其中 【getDataCheckRes】的参数辨识检验不通过时对应的提示信息；card1、card2、card3均可缺省，也可选填对应的字段    此参数可空
    required: true,
    // 此参数选填   要回显的数据 card1 card2 的值的格式为：{name:'',url:''} ;  card3 的值的格式为 [{name:'',url:''}，{name:'',url:''}]
    defaultFileList: {
      card1: {},
    },
    // 此参数集必填
    fielConfig: {
      // 允许上传的文件类型 当为空时表示不限制  默认为空
      //    可供选择类型：
      //          图片('jpg', 'png', 'jpeg')
      //          文档('xlsx', 'xls', 'pptx', 'ppt', 'pdf', 'doc', 'docx', 'txt')
      //          压缩包('zip', 'rar')  发票('pdf', 'jpg', 'png', 'jpeg', 'doc', 'docx', 'zip', 'rar')
      //          PDF(pdf)
      //          委托代征协议('pdf','jpg', 'png', 'jpeg')
      //          我的任务('jpg', 'png', 'jpeg','pdf','xlsx', 'xls', 'pdf', 'doc', 'docx','zip', 'rar' )
      // eg:
      //    当值为string类型时，对所有（card1,card2,card3）的有效；
      //    当值为对象（{"card1":'图片',"card2":'文档', "card3":'PDF'}）时，可指定每个（card1/card2/card3）所对应的类型
      type: "发票",
      // 允许上传的文件个数  默认值为1
      // eg: 1 表示只允许上传1个文件；
      //      当值为对象（{"card1":1,"card2":2, "card3":3}）时，可指定每个（card1/card2/card3）所对应的类型
      size: 1,
      // 上传的单个文件大小 单位为 MB  默认值为1
      //  eg: 当值为 number 时，对所有（card1,card2,card3）的有效；
      //        当值为对象（{"pdf":5,"xlsx":10, "zip":100}）时,可指定对应的文件类型的大小（单位：MB）
      singleFileSize: 5,
    },
  }
}

export default {
  name: 'uploadZxyLegalLetter',
  props: ['appealShow','renewDeatil'],
  data() {
    return {
      isShow: false,

      labelCol: { span: 4 },
      wrapperCol: { span: 18 },
      //核名成功
      form: {
        url:{}
      },
      rules: {
        url: [{ required: true, message: '请选择上传文件', trigger: 'blur' },],
        reason: [{ required: true, message: '请输入申诉说明', trigger: 'blur' },]
      },
      fileUploadConfig:getUploadConfig(),
    }
  },
  watch:{
    appealShow: {
      handler(newVal,oldVal){
        this.isShow = newVal;
      }
    }
  },
  methods:{
    //关闭弹层
    handleCancel(){
      // this.$emit('handlerCancel');
      this.$parent.handlerCancel();
    },
    //审核操作
    confirmOperation() {
      const check_qyfzrxx_sfrz = this.$refs['qyfzrxx_jsfr'].getDataCheckRes({card1:'请上传申诉文件'});
      if (check_qyfzrxx_sfrz.card1 == true){
        const res = this.form.url.card1
        this.form.fileList = [{
          fileName: res.name,
          fileUrl: res.url
        }];
      }else {
        this.$message.warning('请检查文件是否上传');
        return false;
      }

      let params = {};
      params.reason = this.form.reason;
      params.agreeId = this.renewDeatil.id;
      params.riskFile = this.form.fileList;


      this.$refs.form.validate(valid => {
        if (!valid) {
        } else {

          getAgreeAppeal(params).then(res => {
            if (res.success) {
              this.$message.success('提交成功');
              // this.$emit('handlerCancel');
              this.$parent.handlerCancel();
            } else {
              this.$message.warning(res.message);
            }
          })

        }
      })


    },
  }
}
</script>

<style scoped>

</style>
